function mySetInterval(fn, time = 1000) {
  let timer = null,
    isClear = false;

  function interval() {
    if (isClear) {
      isClear = false;
      clearTimeout(timer);
      return;
    }
    fn();
    timer = setTimeout(interval, time);
  }

  timer = setTimeout(interval, time);

  // 返回一个利用闭包停止定时器的函数
  return () => {
    isClear = true;
  };
}

// const a = mySettimeout(() => {
//   console.log(111);
// }, 1000)
// const cancel = mySettimeout(() => {
//   console.log(222)
// }, 1000)
// cancel()
